setInfos(3, "Damian : exactcum", "Cyber Master Damian will take care of you - a big 24/7 script including permissions, punishments...", "Indica, Doti", "started", 0xFFFFFF, "en", ["anal", "long", "exhibition", "femaledom", "formale", "humiliation", "urine", "transgender", "options", "spanking", "shopping", "toys", "sperm"]);

// CyberMistress - exactcum
//
def endReached = false
def block = "begin"
if(loadString("cybermistress.wanted_start_block")!=null) {
	block = loadString("cybermistress.wanted_start_block")
	save("cybermistress.wanted_start_block",null)
}
def newBlock = block
while(!endReached && newBlock!=null) {
block = null
switch(newBlock) {
case "begin":
	if(getRandom(2)==0)
		setImage("jewell/assignments2.jpg")
	else
		setImage("jewell/assignments3.jpg")
	def messages0 = ["Okay my eager slut, you can cum, but you'll have to do it EXACTLY the way I say.","Alright my little slave, you may stroke for me. You must do it precisely the way I tell you to.","Very well my little sissy I'll allow you to cum, but only if you do exactly what I say."]
	show(messages0[getRandom(3)])
	wait(7)
	block = "inst"
	break

case "inst":
	show("I want you to stroke in time with the sound. Each tone equals one stroke up and down. Listen closely and follow along EXACTLY, slut.")
	wait(10)
	block = "hard"
	break

case "hard":
	def messages2 = ["Get yourself hard for me, sissy.","Time to get hard now, slut."]
	show(messages2[getRandom(2)])
	showButton("Ready Master")
	block = "onwiththeshow"
	break

case "onwiththeshow":
	if(getRandom(2)==0)
		setImage("jewell/tease.jpg")
	else
		setImage("jewell/tease3.jpg")
	def messages3 = ["You like this don't you slut?","Mmmm I love seeing you like this.","You look so cute right now sissy.","Mmmm don't squirt now...","Hehehehehe...","I just love teasing sissy sluts."]
	show(messages3[getRandom(6)])
	wait(2)
	switch(getRandom(5)) {
	case 0: block = "stroke"; break
	case 1: block = "strokefast"; break
	case 2: block = "strokebig"; break
	case 3: block = "stroke2"; break
	case 4: block = "leave"; break
	}
	break

case "stroke":
	def messages4 = ["Stroke it for me slut! I want to see you squirm.","Stroke for me bitch. Don't you even think of cumming.","I bet you'd love to cum right now. I bet you'd love to blow you load all over. But you can't until I say so.","Do you want to cum sissy? Well you can't. Not just yet.","I love watching you like this slave, so helpless.","Oh yeah, stroke it for me you filthy slut.","Come on stroker-boy, let's see you jerk your little dicklet.","Come on sissy, stroke that little clitty for me.","Come on now slave, stroke that little nublet of yours for me.","Stroke for me slut. Worship me with your little cocklet."]
	def message = messages4[getRandom(10)]
	block="onwiththeshow"
	for(int i = 0 ; i < 80 ; i++) {
		playBackgroundSound("tom.wav")
		def period = 0.53 - i / 1000
		if(showButton("I came or stopped!",period)<period) {
			block = "failure"
			break
		} 
	}
	break

case "stroke2":
	def messages5 = ["Stroke it for me slut! I want to see you squirm.","Stroke for me bitch. Don't you even think of cumming.","I bet you'd love to cum right now. I bet you'd love to blow you load all over. But you can't until I say so.","Do you want to cum sissy? Well you can't. Not just yet.","I love watching you like this slave, so helpless.","Oh yeah, stroke it for me you filthy slut.","Come on stroker-boy, let's see you jerk your little dicklet.","Come on sissy, stroke that little clitty for me.","Come on now slave, stroke that little nublet of yours for me.","Stroke for me slut. Worship me with your little cocklet."]
	def message = messages5[getRandom(10)]
	block="onwiththeshow"
	for(int i = 0 ; i < 40 ; i++) {
		playBackgroundSound("tom.wav")
		if(showButton("I came or stopped!",0.5)<0.5) {
			block = "failure"
			break
		} 
	}
	break

case "strokefast":
	def messages6 = ["Faster now slave. Don't you dare cum...","Speed it up slut. No squirting remember.","Pick up the pace sissy. Careful now...","FASTER BITCH!","More speed sissy. Really pound that cocklet!","You can go faster than that can't you slut?","I want fast stroking sissy-girl. Speed it up for me."]
	def message = messages6[getRandom(6)]
	block="onwiththeshow"
	for(int i = 0 ; i < 60 ; i++) {
		playBackgroundSound("tom.wav")
		if(showButton("I came or stopped!",0.3)<0.3) {
			block = "failure"
			break
		} 
	}
	break

case "strokebig":
	def messages7 = ["Stroke more slowly for me slave. Savor it.","Not so fast slut, slow it down for me.","Take your time now slut, we're not in any hurry.","Stroke slowly for me my filthy slut. That's right.","Mmmm let's see it slow now slave. Nice and slow.","Slow it down bitch. Really worship me with that cocklet.","Stroke your dicklet more slowly slave. That's the way."]
	def message = messages7[getRandom(7)]
	block="onwiththeshow"
	for(int i = 0 ; i < 80 ; i++) {
		playBackgroundSound("tom.wav")
		if(showButton("I came or stopped!",0.55)<0.55) {
			block = "failure"
			break
		} 
	}
	break

case "leave":
	def messages8 = ["Now then, should I actually let my little sissy whore cum?","I bet you're hoping I'll let you cum after all that aren't you my optimistic slave?","Hmmm... should I really let my sissy slut cum?"]
	show(messages8[getRandom(3)])
	wait(10)
	block = "pickdick"
	break

case "pickdick":
	if(true==loadInteger("jewell.deny_Orgasm") && loadInteger("jewell.deny_Orgasm")>getTime()) {
		block="pickdickfail"
		break
	}
	switch(getRandom(3)) {
	case 0: block = "dick"; break
	case 1: block = "pick"; break
	case 2: block = "dick"; break
	}
	break

case "pick":
	def messages10 = ["I don't think I'm ready to let you stop stroking sissy.","I'm not finished watching you stroke for me just yet.","I don't think I'm done teasing you sissy. Not yet."]
	show(messages10[getRandom(3)])
	wait(8)
	block = "onwiththeshow"
	break

case "dick":
	show("Very well slut, you may cum. Jerk in time with the sound. If you don't cum by the end, you forfeit your chance.")
	wait(10)
	block = "dick1"
	break

case "dick1":
	def messages12 = ["Okay sissy, you can cum.","Cum for me, my stupid whore.","Cum for me slut. Let it all out."]
	show(messages12[getRandom(3)])
	for(int i = 0 ; i < 40 ; i++) {
		playBackgroundSound("tom.wav")
		wait(0.45-i/250)
	}
	block = "done"
	break

case "done":
	def messages13 = ["There you are slut, put that cocklet away now.","Okay sissy, all done. Time to tuck that little dicklet away.","You're finished slave. Put your nublet away for now."]
	show(messages13[getRandom(3)])
	wait(5)
	block = "finish"
	break

case "pickdickfail":
	def messages14 = ["Hehehehe. Of course you can't cum. You knew that.","You don't have permission to cum, and I'm not granting you any special priviledges. So you get nothing.","No. Why would you ever think the answer would be yes?"]
	show(messages14[getRandom(3)])
	wait(5)
	block = "finish"
	break

case "failure":
	if(getBoolean("Did you cum or stop?","Came","Stopped"))
		block = "cumfailure"
	else
		block = "stopfailure"
	break

case "stopfailure":
	def messages16 = ["You need to learn better control, bitch.","You need discipline, slut."]
	show(messages16[getRandom(2)])
	wait(5)
	switch(getRandom(2)) {
	case 0: block = "stopgood"; break
	case 1: block = "stopbad"; break
	}
	break

case "stopgood":
	if(loadInteger("cybermistress.points")==null)
		save("cybermistress.points", 80)
	save("cybermistress.points", -1+loadInteger("cybermistress.points"))
	def messages17 = ["I'll forgive you this time slave, but don't test my patience.","I'm giving you another chance slut, don't make me regret it."]
	show("(You've got "+loadInteger("cybermistress.points")+" points)\n"+messages17[getRandom(2)])
	wait(5)
	block = "onwiththeshow"
	break

case "stopbad":
	if(loadInteger("cybermistress.points")==null)
		save("cybermistress.points", 80)
	save("cybermistress.points", -3+loadInteger("cybermistress.points"))
	def messages18 = ["Well if you've stopped you must be done. Put that little dicklet away slut, you're finished.","You'll have to to better next time, because you're done slut.","You'll remember to follow instructions next time, bitch."]
	show("(You've got "+loadInteger("cybermistress.points")+" points)\n"+messages18[getRandom(3)])
	wait(3)
	block = "finish"
	break

case "cumfailure":
	if(getBoolean("Of course, you ruined the orgasm right slave?"))
		block = "ruinedfailure"
	else
		block = "ultimatefailure"
	break

case "ultimatefailure":
	def messages20 = ["You will be denied orgasms for 72 hours while you think about your failure.","This is completely unacceptable you stupid slut! No cumming for 72 hours.","I am very disappointed in you, "+loadString("intro.name")+". You will be denied orgasm for 72 hours."]
	show(messages20[getRandom(3)])
	wait(6)
	save("cybermistress.deny_Orgasm", getTime()+72*3600)
	block = "finish"
	break

case "ruinedfailure":
	def messages21 = ["Bad slut. Your pathetic dicklet belongs to me, and I did not give you permission to cum. No cumming for 24 hours.","What a naughty whore. I'm giving you 24 hours of chastity to cool off.","No cumming for 24 hours. You'll have to learn better slave.","You are denied orgasm for 24 hours. Slaves need better control."]
	show(messages21[getRandom(4)])
	wait(6)
	save("cybermistress.deny_Orgasm", getTime()+24*3600)
	block = "finish"
	break

case "finish":
	endReached = true
	return("jewell")
	break

default:
	show("Unfinished ? ("+block+")")
	endReached = true
} // end switch 
newBlock = block
} // end while

// This script, from http://ss.deviatenow.com, is protected by this licence : 
// CC by-NC, see http://creativecommons.org/licenses/by-nc/3.0/
